home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / C⁄C++ OS8 / Everything / ModelessRadios.cp < prev    next >
Encoding:
Text File  |  1998-09-06  |  4.3 KB  |  169 lines  |  [TEXT/CWIE]

  1. // ModelessRadios.cp -- modeless dialog
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12.  
  13. #include "ResourceDefs.h"
  14. #include "Miscellany.h"
  15. #include "ControlUtils.h"
  16.  
  17. #include "ModelessRadios.h"
  18.  
  19. #define kRadioGroupGroup        1
  20. #define kStandardRadio        2
  21. #define kGroupBox        3
  22. #define kGroupGroup        4
  23. #define kGroupRadio1        5
  24. #define kGroupRadio2        6
  25. #define kGroupRadio3        7
  26. #define kGraphicBox        8
  27. #define kGraphicGroup        9
  28. #define kStopRadio        10
  29. #define kGoRadio        11
  30. #define kBevelBox        12
  31. #define kBevelGroup        13
  32. #define kRadioButtonRadio        14
  33. #define kRadioButton2Radio        15
  34. #define kTextBox        16
  35. #define kTextGroup        17
  36. #define kNameRadio        18
  37. #define kKindRadio        19
  38. #define kSizeRadio        20
  39.  
  40.  
  41. //----------
  42. CModelessRadios*        CModelessRadios::sDialog = nil;
  43.  
  44. //----------
  45. // static
  46. CModelessRadios*        CModelessRadios::Create ()
  47. {
  48.     CModelessRadios*        dialog = new CModelessRadios;
  49.     DModelessRadiosData*        data = new DModelessRadiosData;
  50.  
  51.     dialog->MakeDialog (DLOG_ModelessRadios);
  52.     dialog->ConnectToData (data);
  53.  
  54.     return dialog;
  55. }
  56.  
  57. //----------
  58. // static
  59. CModelessRadios*        CModelessRadios::Show ()
  60. {
  61.     if (sDialog == nil) {
  62.         sDialog = CModelessRadios::Create ();
  63.     }
  64.     if (sDialog != nil) {
  65.         ::SelectWindow (sDialog->mDialog);
  66.         ::ShowWindow (sDialog->mDialog);
  67.     }
  68.     return sDialog;
  69. }
  70.  
  71. //----------
  72. CModelessRadios::CModelessRadios ()
  73. {
  74.     mData = nil;
  75. }
  76.  
  77. //----------
  78. CModelessRadios::~CModelessRadios ()
  79. {
  80.     sDialog = nil;
  81. }
  82.  
  83. //----------
  84. void    CModelessRadios::FinishMake ()
  85. {
  86.     mRadioGroupGroupHandle = GetControlItem (kRadioGroupGroup);
  87.     mStandardHandle = GetControlItem (kStandardRadio);
  88.     mGroupBoxHandle = GetControlItem (kGroupBox);
  89.     mGroupGroupHandle = GetControlItem (kGroupGroup);
  90.     mGroupRadio1Handle = GetControlItem (kGroupRadio1);
  91.     mGroupRadio2Handle = GetControlItem (kGroupRadio2);
  92.     mGroupRadio3Handle = GetControlItem (kGroupRadio3);
  93.     mGraphicBoxHandle = GetControlItem (kGraphicBox);
  94.     mGraphicGroupHandle = GetControlItem (kGraphicGroup);
  95.     mStopHandle = GetControlItem (kStopRadio);
  96.     mGoHandle = GetControlItem (kGoRadio);
  97.     mBevelBoxHandle = GetControlItem (kBevelBox);
  98.     mBevelGroupHandle = GetControlItem (kBevelGroup);
  99.     mRadioButtonHandle = GetControlItem (kRadioButtonRadio);
  100.     SetBevelButtonGraphicAlignment (mRadioButtonHandle, kControlBevelButtonAlignCenter, 0, 0);
  101.     mRadioButton2Handle = GetControlItem (kRadioButton2Radio);
  102.     SetBevelButtonGraphicAlignment (mRadioButton2Handle, kControlBevelButtonAlignCenter, 0, 0);
  103.     mTextBoxHandle = GetControlItem (kTextBox);
  104.     mTextGroupHandle = GetControlItem (kTextGroup);
  105.     mNameHandle = GetControlItem (kNameRadio);
  106.     mKindHandle = GetControlItem (kKindRadio);
  107.     mSizeHandle = GetControlItem (kSizeRadio);
  108. }
  109.  
  110. //----------
  111. void    CModelessRadios::ConnectToData (
  112.     AMSignaler*        inData)
  113. {
  114.     AMDialog::ConnectToData (inData);
  115.     mData = (DModelessRadiosData*) inData;
  116.  
  117.     SetControlValue (mRadioGroupGroupHandle, mData->GetRadioGroup3 ());
  118.     SetControlValue (mGroupGroupHandle, mData->GetGroup3 ());
  119.     SetControlValue (mGraphicGroupHandle, mData->GetGraphic5 ());
  120.     SetControlValue (mBevelGroupHandle, mData->GetBevel3 ());
  121.     SetControlValue (mTextGroupHandle, mData->GetText3 ());
  122. }
  123.  
  124. //----------
  125. void    CModelessRadios::DataChanged (
  126.     long        inDataID)
  127. {
  128.     if (inDataID == idRadioGroup3) {
  129.         SetControlValue (mRadioGroupGroupHandle, mData->GetRadioGroup3 ());
  130.     }
  131.     if (inDataID == idGroup3) {
  132.         SetControlValue (mGroupGroupHandle, mData->GetGroup3 ());
  133.     }
  134.     if (inDataID == idGraphic5) {
  135.         SetControlValue (mGraphicGroupHandle, mData->GetGraphic5 ());
  136.     }
  137.     if (inDataID == idBevel3) {
  138.         SetControlValue (mBevelGroupHandle, mData->GetBevel3 ());
  139.     }
  140.     if (inDataID == idText3) {
  141.         SetControlValue (mTextGroupHandle, mData->GetText3 ());
  142.     }
  143. }
  144.  
  145.  
  146. //----------
  147. void    CModelessRadios::DoItem (
  148.     SInt16        inItemHit)
  149. {
  150.     switch (inItemHit) {
  151.     case kRadioGroupGroup:
  152.             mData->SetRadioGroup3 (GetControlValue (mRadioGroupGroupHandle));
  153.         break;
  154.     case kGroupGroup:
  155.             mData->SetGroup3 (GetControlValue (mGroupGroupHandle));
  156.         break;
  157.     case kGraphicGroup:
  158.             mData->SetGraphic5 (GetControlValue (mGraphicGroupHandle));
  159.         break;
  160.     case kBevelGroup:
  161.             mData->SetBevel3 (GetControlValue (mBevelGroupHandle));
  162.         break;
  163.     case kTextGroup:
  164.             mData->SetText3 (GetControlValue (mTextGroupHandle));
  165.         break;
  166.  
  167.     } // switch
  168. }
  169.